Development Project
[semester]
(team project)-- include presentation
Project Goal:
In this programming project, you and your classmates operate as small teams using Agile development to build a real open source Ethereum Blockchain Application (Dapp) together, with the technology stack of your own choosing. You can choose one project from any of the project ideas—if you have an awesome idea yourself and would like to propose it, don’t be afraid to reach out to me. The teams have to be set up to contain students with the range of skills (front-end and back-end development) needed to complete the project successfully.
- You are expected to use Truffle Framework for your dapp development.
- There are several libraries available for when you need to communicate your backend with Ethereum contracts, most of them being wrappers around a library called web3.js. So, probably it would be the best choice for you.
- The following tools are either required, or have proved very useful to previous teams.
Project Deliverables/Tasks:
Part 1) Team formation and project plan: Form a team (3-6 members allowed in each team and every team should have a team leader--the team leader should email the names to the instructor), choose a project, create a Slack channel (if needed), create a public git repository for your project. The README in your git repo clearly lists your team name and roster. The roster includes each team member's name and the role they play on the project.
- Deliverable 1: Project Plan (see template)-- The project plan, or a URL of the plan, is documented in your GitHub repo. Submit your team's GitHub repo URL as the solution to this part in D2L.
Part 2) Architecture and Design
- Deliverable 2: Design document (see template)-- The Design document, or a URL of the document, is documented in your GitHub repo. Submit your team's GitHub repo URL as the solution to this part in D2L.
Part 3) Continuous development and testing: Continue executing on your product, building your product using continuous delivery and integration.
- Deliverable 3: Production code and tests -- Every week you should export your code, tests and notes pushed onto your GitHub repo. Your project artifacts (code and tests) will be sampled and assessed continuously during the project so ensure the repository is always updated. Submit your team's GitHub repo URL as the solution to this part in D2L. Since, you will be using Truffle framework, there should be at least 5-10 test cases in your "tests" folder.
Part 3) Presentation and Demo
- Deliverable 4:
- for f-2-f students in-class project presentation and Demo is required (see guidelines (f2f) for preparation).
- for online students virtual project presentation and Demo is required (see guidelines (online) for preparation).
- Submit your presentation in D2L.
* A mid-point progress presentation will be held in week 7/8.
Notes (important–make sure to read carefully):
- Each team must designate a project leader, responsible for the overall development process.
- All submissions are at team-based level. This means only the team leader from each group will submit the deliverables on the behalf of her/his team.
- You should communicate with your teammates early and begin working on the project. Make sure you break up the project so that each member of the team has a responsibility.
- The project is graded at the team level. This means that each team member usually receives the same grade for each such element. However, if a student does not perform at the team level for a given element, that student should NOT expect the same grade as the other team members. This includes both students who choose not to participate to an appropriate degree and those who choose to be “team hero”.
If you have any questions about the project, please use this open discussion forum: Questions & Discussion about Development Project